#ifndef SIMPLE_SUPPORT_TYPE_TRAITS_CONVERSIONS_HPP
#define SIMPLE_SUPPORT_TYPE_TRAITS_CONVERSIONS_HPP

#include <concepts> // std::convertible_to

namespace simple::support
{

	template<typename From, typename To>
	concept converts_to = requires(From t) { static_cast<To>(t); };

	template<typename From, typename To>
	concept imp_converts_to = std::convertible_to<From,To>;

	template<typename From, typename To>
	concept exp_converts_to = converts_to<From,To> && not std::convertible_to<From,To>;

} // namespace simple::support

#endif /* end of include guard */
